/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

File-System
文件系统相关接口。

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef ZfsApiModel_h
#define ZfsApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKCommon/JDCloudOCSDKCommon.h>
#import <JDCloudOCSDKZfs/ZfsModel.h>


@interface ZfsCreateMountTargetRequest:JDCloudRequest

/// 创建挂载目标的文件系统
@property (strong,nonatomic,nonnull)  NSString*  fileSystemId;
/// 子网id
@property (strong,nonatomic,nonnull)  NSString*  subnetId;
/// vpcId
@property (strong,nonatomic,nonnull)  NSString*  vpcId;
/// 安全组id
@property (strong,nonatomic,nonnull)  NSString*  securityGroupId;
/// 幂等性参数(只支持数字、大小写字母，且不能超过64字符)
@property (strong,nonatomic,nonnull)  NSString*  clientToken;
-(id) initWithRegion:(NSString *)regionId
fileSystemId:(NSString*)fileSystemId
subnetId:(NSString*)subnetId
vpcId:(NSString*)vpcId
securityGroupId:(NSString*)securityGroupId
clientToken:(NSString*)clientToken;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
fileSystemId:(NSString*)fileSystemId
subnetId:(NSString*)subnetId
vpcId:(NSString*)vpcId
securityGroupId:(NSString*)securityGroupId
clientToken:(NSString*)clientToken;

@end

@interface ZfsDeleteMountTargetRequest:JDCloudRequest

/// 挂载目标ID
@property (strong,nonatomic,nonnull)  NSString*  mountTargetId;
-(id) initWithRegion:(NSString *)regionId
mountTargetId:(NSString*)mountTargetId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
mountTargetId:(NSString*)mountTargetId;

@end

@interface ZfsDescribeMountTargetRequest:JDCloudRequest

/// 挂载目标ID
@property (strong,nonatomic,nonnull)  NSString*  mountTargetId;
-(id) initWithRegion:(NSString *)regionId
mountTargetId:(NSString*)mountTargetId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
mountTargetId:(NSString*)mountTargetId;

@end

@interface ZfsCreateMountTargetResult : NSObject
/// 挂载目标 ID
 @property (strong,nonatomic,nonnull)  NSString*  mountTargetId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithMountTargetId:(NSString*) mountTargetId;
@end

@interface ZfsCreateFileSystemResult : NSObject
/// 文件系统 ID
 @property (strong,nonatomic,nonnull)  NSString*  fileSystemId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithFileSystemId:(NSString*) fileSystemId;
@end

@interface ZfsCreateFileSystemRequest:JDCloudRequest

/// 文件系统名称
@property (strong,nonatomic,nonnull)  NSString*  name;
/// 文件系统描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// 幂等性参数(只支持数字、大小写字母，且不能超过64字符)
@property (strong,nonatomic,nonnull)  NSString*  clientToken;
/// 文件系统类型(通用型:gp1,容量型:std1),默认为通用型
@property (strong,nonatomic,nonnull)  NSString*  fileSystemType;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
clientToken:(NSString*)clientToken
fileSystemType:(NSString*)fileSystemType;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
clientToken:(NSString*)clientToken
fileSystemType:(NSString*)fileSystemType;

@end

@interface ZfsDescribeFileSystemRequest:JDCloudRequest

/// 文件系统ID
@property (strong,nonatomic,nonnull)  NSString*  fileSystemId;
-(id) initWithRegion:(NSString *)regionId
fileSystemId:(NSString*)fileSystemId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
fileSystemId:(NSString*)fileSystemId;

@end

@interface ZfsDeleteFileSystemRequest:JDCloudRequest

/// 文件系统ID
@property (strong,nonatomic,nonnull)  NSString*  fileSystemId;
-(id) initWithRegion:(NSString *)regionId
fileSystemId:(NSString*)fileSystemId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
fileSystemId:(NSString*)fileSystemId;

@end

@interface ZfsModifyFileSystemAttributeRequest:JDCloudRequest

/// 文件系统名称(参数规则：不可为空，只支持中文、数字、大小写字母、英文下划线“_”及中划线“-”，且不能超过32字符)
@property (strong,nonatomic,nonnull)  NSString*  name;
/// 文件系统描述(参数规则：不能超过256字符)
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// 文件系统ID
@property (strong,nonatomic,nonnull)  NSString*  fileSystemId;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
fileSystemId:(NSString*)fileSystemId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
fileSystemId:(NSString*)fileSystemId;

@end

@interface ZfsDeleteMountTargetResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface ZfsDeleteMountTargetResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsDeleteMountTargetResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsDeleteMountTargetResult*) result;
@end

@interface ZfsCreateMountTargetResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsCreateMountTargetResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsCreateMountTargetResult*) result;
@end

@interface ZfsDescribeMountTargetResult : NSObject
/// MountTarget
 @property (strong,nonatomic,nonnull)  MountTarget*  mountTarget;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithMountTarget:(MountTarget*) mountTarget;
@end

@interface ZfsDescribeMountTargetResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsDescribeMountTargetResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsDescribeMountTargetResult*) result;
@end

@interface ZfsDescribeMountTargetsResult : NSObject
/// MountTargets
 @property (strong,nonatomic,nonnull)  NSArray<MountTarget*>*  mountTargets;
/// 查询的挂载目标数目
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithMountTargets:(NSArray<MountTarget*>*) mountTargets

    totalCount:(NSNumber*)totalCount;
@end

@interface ZfsDescribeMountTargetsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsDescribeMountTargetsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsDescribeMountTargetsResult*) result;
@end

@interface ZfsDescribeMountTargetsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞)
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// fileSystemId - 文件系统ID，精确匹配，支持多个
   /// mountTargetId - 挂载目标ID，精确匹配，支持多个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface ZfsDescribeFileSystemResult : NSObject
/// FileSystem
 @property (strong,nonatomic,nonnull)  FileSystem*  fileSystem;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithFileSystem:(FileSystem*) fileSystem;
@end

@interface ZfsDescribeFileSystemResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsDescribeFileSystemResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsDescribeFileSystemResult*) result;
@end

@interface ZfsDescribeFileSystemsRequest:JDCloudRequest

/// 页码, 默认为1, 取值范围：[1,∞)
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小，默认为20，取值范围：[10,100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// Tag筛选条件
@property (strong,nonatomic,nonnull)  NSArray<ZfsTagFilter*>*  tags;
/// fileSystemId - 文件系统ID，精确匹配，支持多个
   /// name - 文件系统名称，模糊匹配，支持单个
   /// status - 文件系统状态，精确匹配，支持多个 FileSystem Status/creating、available、in-use
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
tags:(NSArray<ZfsTagFilter*>*)tags
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
tags:(NSArray<ZfsTagFilter*>*)tags
filters:(NSArray<Filter*>*)filters;

@end

@interface ZfsModifyFileSystemAttributeResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface ZfsCreateFileSystemResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsCreateFileSystemResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsCreateFileSystemResult*) result;
@end

@interface ZfsDescribeFileSystemsResult : NSObject
/// FileSystems
 @property (strong,nonatomic,nonnull)  NSArray<FileSystem*>*  fileSystems;
/// 查询的文件系统数目
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithFileSystems:(NSArray<FileSystem*>*) fileSystems

    totalCount:(NSNumber*)totalCount;
@end

@interface ZfsDescribeFileSystemsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsDescribeFileSystemsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsDescribeFileSystemsResult*) result;
@end

@interface ZfsDeleteFileSystemResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface ZfsDeleteFileSystemResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsDeleteFileSystemResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsDeleteFileSystemResult*) result;
@end

@interface ZfsModifyFileSystemAttributeResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property ZfsModifyFileSystemAttributeResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(ZfsModifyFileSystemAttributeResult*) result;
@end

#endif /* ZfsApiModel_h */
